System For Line Extraction In Digital Ink

ABSTRACT

A system is provided having a database storing annotation digital ink representing handwritten annotations on a printed document and a processor configured to segment the annotation digital ink into lines by obtaining a stroke sequence comprised of a sequence of strokes, removing small strokes less than a threshold length, segmenting the strokes into a sequence of substrokes by computing a relative angle for each line segment connecting successive stroke data points and segmenting the stroke into substrokes if the difference between successive relative angles is greater than a preset threshold, and identifying the substrokes at line breaks, thereby facilitating line extraction, by computing N-neighbourhood centroids, computing angular differences between N-neighbouring substrokes, or groups of substrokes and computing local maxima of the angular differences in the sequence of substrokes.

CROSS REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. application Ser. No.10/778,090 filed Feb. 17, 2004, all of which are herein incorporated byreference.

TECHNICAL FIELD

The present invention relates to processing of handwritten digital inkdocuments, and in particular, to a method and system for line extractionin a digital ink sequence. The present invention also provides a meansfor line orientation estimation in a digital ink sequence.

CO-PENDING APPLICATIONS AND GRANTED PATENTS

Various methods, systems and apparatus relating to the present inventionare disclosed in the following patents and co-pending applications filedby the applicant or assignee of the present invention:

7,156,289 7,178,718 7,225,979 09/575,197 7,079,712 6,825,945 7,330,9746,813,039 7,190,474 6,987,506 6,824,044 6,980,318 6,816,274 7,102,7727,350,236 6,681,045 6,678,499 6,679,420 6,963,845 6,976,220 6,728,0007,110,126 7,173,722 6,976,035 6,813,558 6,766,942 6,965,454 6,995,8597,088,459 6,720,985 7,286,113 6,922,779 6,978,019 6,847,883 7,131,0587,295,839 7,406,445 09/693,690 6,959,298 6,973,450 7,150,404 6,965,8827,233,924 09/575,181 09/722,174 7,175,079 7,162,259 6,718,061 7,464,8807,012,710 6,825,956 7,451,115 7,222,098 10/291,825 7,263,508 7,031,0106,972,864 6,862,105 7,009,738 6,989,911 6,982,807 10/291,576 6,829,3876,714,678 6,644,545 6,609,653 6,651,879 10/291,555 7,293,240 7,467,1857,415,668 7,044,363 7,004,390 6,867,880 7,034,953 6,987,581 7,216,22410/291,821 7,162,269 7,162,222 7,290,210 7,293,233 7,293,234 6,850,9316,865,570 6,847,961 10/685,523 10/685,583 7,162,442 10/685,584 7,159,7847,068,382 7,007,851 6,957,921 6,457,883 7,094,910 7,091,344 7,122,6857,038,066 7,099,019 7,062,651 6,789,194 6,789,191 6,644,642 6,502,6146,622,999 6,669,385 6,827,116 6,549,935 6,987,573 6,727,996 6,591,8846,439,706 6,760,119 7,295,332 7,064,851 6,826,547 6,290,349 6,428,1556,785,016 6,831,682 6,741,871 6,927,871 6,980,306 6,965,439 6,840,6067,036,918 6,977,746 6,970,264 7,068,389 7,093,991 7,190,491 6,982,7986,870,966 6,822,639 6,474,888 6,627,870 6,724,374 6,788,982 7,263,2706,788,293 6,946,672 6,737,591 7,091,960 7,369,265 6,792,165 7,105,7536,795,593 6,980,704 6,768,821 7,132,612 7,041,916 6,797,895 7,015,9017,055,739 7,233,320 6,830,196 6,832,717 7,182,247 7,082,562 6,843,42010/291,718 6,789,731 7,057,608 6,766,944 6,766,945 7,289,103 7,412,6517,299,969 10/409,864 7,108,192 7,111,791 10/683,040 6,957,768 7,456,8207,170,499 7,106,888 7,123,239 6,982,701 6,982,703 7,227,527 6,786,3976,947,027 6,975,299 7,139,431 7,048,178 7,118,025 6,839,053 7,015,9007,010,147 7,133,557 6,914,593 7,437,671 6,454,482 6,808,330 6,527,3656,474,773 6,550,997 7,093,923 6,957,923 7,131,724

The disclosures of these co-pending applications and granted patents areincorporated herein by reference.

BACKGROUND ART Definitions

‘Stroke’ as used herein refers to a sequence of time-orderedtwo-dimensional data points forming a distinct part of a digital inksequence. ‘Stroke sequence’ as used herein refers to a time-orderedsequence of strokes.

‘Substroke’ as used herein refers to segmented components of a stroke.

The increasing use of pen computing and the emergence of paper-basedinterfaces to networked computing resources (for example see: P.Lapstun, Netpage System Overview, Silverbrook Research Pty Ltd, 6 Jun.2000; and, Anoto, “Anoto, Ericsson, and Time Manager Take Pen and Paperinto the Digital Age with the Anoto Technology”, Press Release, 6 Apr.2000), has highlighted the need for techniques which are able to store,index, and search (raw) digital ink. Pen-based computing allows users tostore data in the form of notes and annotations, and subsequently searchthis data based on hand-drawn queries. However, searching handwrittentext is more difficult than traditional text (e.g. ASCII text) searchingdue to inconsistencies in the production of handwriting and thestylistic variations between writers.

The traditional method of searching handwritten data in a digital inkdatabase is to first convert the digital ink database and correspondingsearch query to standard text using pattern recognition techniques, andthen to match the query text with the converted standard text in thedatabase. Fuzzy text searching methods have been described, see P. Halland G. Dowling, “Approximate String Matching”, Computing Surveys, 12(4),pp. 381-402, 1980, that perform text matching in the presence ofcharacter errors, similar to those produced by handwriting recognitionsystems.

However, handwriting recognition accuracy remains low, and the number oferrors introduced by handwriting recognition (both for the databaseentries and for the handwritten query) means that this technique doesnot work well. The process of converting handwritten information intotext results in the loss of a significant amount of informationregarding the general shape and dynamic properties of the handwriting.For example, some letters (e.g. ‘u’ and ‘v’, ‘v’ and ‘r’, ‘f’ and ‘t’,etc.) are handwritten with a great deal of similarity in shape.Additionally, in many handwriting styles (particularly cursive writing),the identification of individual characters is highly ambiguous.

Pen-based computing systems provide a convenient and flexible means ofhuman-computer interaction. Most people are very familiar with using penand paper. This familiarity is exploited by known systems which use apen-like device as a data entry and recording mechanism for text,drawings or calculations which are quite naturally supported by thismedium. Additionally, written ink is a more expressive format thandigital text, and ink-based systems can be language-independent.Moreover, the majority of published information is distributed in paperform, and most people prefer reading printed material to readinginformation on screen-based terminals. However, online applications andpublishing systems have a number of advantages over pen and paper, suchas the ability to provide information on demand, document navigation viahypertext, and the ability to search and personalize the information.

The Netpage system, see Silverbrook Research, Netpage System DesignDescription, 8 Sep. 2000, provides an interactive paper-based interfaceto online information by utilizing pages of invisibly coded paper and anoptically imaging pen. Each page generated by the Netpage system isuniquely identified and stored on a network server, and all userinteraction with the paper using the Netpage pen is captured,interpreted, and stored. Memjet digital printing technology, seeSilverbrook Research, Memjet, 1999, facilitates the on-demand printingof Netpage documents, allowing interactive applications to be developed.The Netpage printer, pen, and network infrastructure provide apaper-based alternative to traditional screen-based applications andonline publishing services, and supports user-interface functionalitysuch as hypertext navigation and form input.

Netpage is a three-tiered system comprising a client layer, a servicelayer, and an application layer, as depicted in FIG. 21. The clientlayer contains the Netpage pen, Memjet printer, and a digital ink relay.Typically, the printer receives a document from a publisher orapplication provider via a broadband connection, which is printed withan invisible pattern of infrared tags that encodes each page with aunique identifier and the location of the tag on the page. As a userwrites on the page, the imaging pen decodes these tags and converts themotion of the pen into digital ink, see Silverbrook Research, NetpagePen Design Description, 27 Apr. 2000. The digital ink is transmittedover a wireless channel to a relay base station, and then sent to theservice layer for processing and storage.

The service layer consists of a number of services that providefunctionality for application development, with each service implementedas a set of network servers that provide a reliable and scaleableprocessing environment. The infrastructure provides persistent storageof all documents printed using the Netpage system, together with thecapture and persistent storage of all digital ink written on aninteractive page. When digital ink is submitted for processing, thesystem uses a stored description of the page to interpret the digitalink, and performs the requested actions by interacting with theapplications that generated the document.

The application layer provides content to the user by publishingdocuments, and processes the digital ink interactions submitted by theuser. Typically, an application generates one or more interactive pagesin response to user input, which are transmitted to the service layer tobe stored, rendered, and finally printed as output to the user. TheNetpage system allows sophisticated applications to be developed byproviding services for document publishing, rendering, and delivery,authenticated transactions and secure payments, handwriting recognitionand digital ink searching, and user validation using biometrictechniques such as signature verification.

As a result of the progress in pen-based interface research, handwrittendigital ink documents, represented by time-ordered sequences of sampledpen strokes, are becoming increasingly popular [J. Subrahmonia and T.Zimmerman: Pen Computing: Challenges and Applications. Proceedings ofthe ICPR, 2000, pp. 2060-2066]. This representation of handwriting iscalled on-line as opposed to off-line where documents are represented bydigital images. On-line handwriting typically involves writing in amixture of writing styles (e.g. cursive, discrete, run-on etc.), avariety of fonts and scripts and different layouts (e.g. mixing drawingswith text, various text line orientations etc.). Although it is possibleto process (e.g. recognise) the handwritten data directly, i.e. as it isoutput from the device, the processing system would have to account forall the variability in the data—an admittedly difficult task. To reducethe variability in the data, a document preprocessing step is typicallyused prior to further operations on the data. One of the tasks ofdocument preprocessing is to identify document (here handwritten page)parts which share some common attribute, e.g. they contain ink thatbelongs to a text line, or it has the same font size, or it is adrawing, etc. Another task is to remove some of the variability bynormalising, e.g. for size, rotation or slant.

The present invention relates to text line extraction, that issegmenting out document parts that constitute lines of text. Given thetext line segments, a skew may be estimated, i.e. the orientation of ageometric line parallel to the text line's accepted baseline withrespect to the horizontal axis. Note that in unconstrained handwritingthe baseline is not well defined and various approximations aretypically accepted (e.g. the least squares approximation line fitthrough the local y-minima of strokes of horizontal lines or lineparts). The normalisation (rotation) of digital ink to correct for theskew angle is called deskewing;

Most probably due to the difficulties of the handwritten character/wordclassification task itself and secondly due to the relatively slow(until recently) evolution of pen-based devices operating directly ondigital ink, research in the past two decades has not given too muchattention to line extraction and deskewing for unconstrained on-linehandwriting (the reader should distinguish line extraction from linesegmentation which is often used to denote segmenting a text line intowords and/or characters). In fact, only a single approach exclusivelydealing with this problem was encountered in the literature [E.Ratzlaff, “Inter-line distance estimation and text line extraction forunconstrained on-line handwriting”, Proceedings of the 7th InternationalWorkshop on Frontiers in Handwriting Recognition, Sep. 11-13 2000,Amsterdam, Nijmegen: International Unipen Foundation, ISBN90-76942-01-3, pp. 33-42], making use of temporal stroke relationshipsfor line extraction. The method has been patented [M. Perrone and E.Ratzlaff, “Spatial sorting and formatting for handwriting recognition”,U.S. Pat. No. 6,333,994, IBM Corporation, December 2001] and anapplication has been described [A. Jain, A. Namboodiri and J.Subrahmonia, “Structure in On-line Documents”, Proceedings of the 6thInternational Conference on Document Analysis and Recognition, pp.844-848, Seattle Wash., September 2001].

Unfortunately, Ratzlaff's approach poses restricting requirements as tothe accepted writing style, thus limiting the applicability of themethod to pages written in a single font size, with a constantinter-line distance between not significantly overlapping lines.Furthermore, lines are assumed to be approximately horizontal as themethod is very sensitive to even small skew angles (2 degrees andabove). Finally, the proposed algorithm relies on a number of manuallyselected parameters although, as the author argues, these could beautomatically selected as a result of a training process (assuming thattraining data is available).

Similar limitations are common to off-line handwriting methods which arebriefly discussed for the sake of completeness. Off-line approaches tohandwritten line extraction and deskewing have to account for, apartfrom the writer's style variability, the global geometric transformation(especially the global skew angle) introduced by the imaging process.Partially due to the difficulty in telling the imaging skew fromintentional angled writing, almost all methods have assumed that theoriginal writing was meant to be horizontal, therefore a document pagelike the one shown in FIG. 4 may be problematic to handle. In addition,a common requirement in off-line methods is that all imaged ink issubject to the same skew—an assumption often violated (think of theimage of two adjacent book pages in 2-column format scanned together bypressing the spine of the book). Moreover, many methods restrict theacceptable line orientation to a specified limited range (e.g. 45degrees). A further limitation of off-line methods, mainly due to thelack of temporal information, is that not only are they sensitive to theoverlap between lines but also they often require a minimum inter-linedistance, larger than the maximum inter-stroke distance. Very often, asignificant amount of writing is required for accurate results to beobtained. Finally, off-line methods are much more computationallyexpensive than on-line ones.

Despite their limitations, off-line methods have exploited a number ofalgorithms. In particular, variations of the projection profile methodhave been very popular for removing the global page skew ofnon-overlapping horizontal lines [H. Baird, “The Skew Angle of PrintedDocuments”, Proceedings of Society of Photographic ScientificEngineering, 1987, Vol. 40, pp. 21-24], F. Venturelli, Z. Kovacs-Vajna,“A Successful Technique for Unconstrained Hand-Written LineSegmentation”, Progress in Handwriting Recognition, Ed. A. C. Downtownand S. Impedovo, World Scientific, pp. 563-568, 1997], [T. Steinherz, N.Intrator and E. Rivlin, “Skew Detection via Principal ComponentsAnalysis”, Proceedings of the 5th International Conference on DocumentAnalysis and Recognition, 1999, pp. 153-156]. Local application of theprojection profile method is a more accurate approach, however it iscomputationally expensive if a significant number of projections atdifferent angles have to be computed for every local ink segment. TheHough transform has been extensively used for line extraction fromdocument images [S. Srihari and V. Govindaraju. “Analysis of textualimages using the Hough transform”, Machine Vision and Applications,2:141-153, 1989], [L. Likforman-Sulem, A. Hanimyan, C. Faure, “A Houghbased algorithm for extracting text lines in handwritten documents”,Third International Conference on Document Analysis and Recognition(Volume 2), pp. 774-777, Aug. 14-15, 1995]. [Y. Pu and Z. In, “A NaturalLearning Algorithm based on Hough Transform for Text Lines Extraction inHandwritten Documents”, Eighth International Workshop on Frontiers inHandwriting Recognition, KAIST Campus, Taejon City, Korea, Aug. 12-14,1998, pp. 637-646]. [J. Liang, I. Phillips and R. Haralick, “AStatistically based, Highly Accurate Text-line Segmentation Method”,Proceedings of the 5th International Conference on Document Analysis andRecognition, 20-22 September, 1999, Bangalore, India, pp 551-554]. Localapplication of the Hough transform for skewed horizontal lines [Y. Puand Z. Shi, “A Natural Learning Algorithm based on Hough Transform forText Lines Extraction in Handwritten Documents”, Eighth InternationalWorkshop on Frontiers in Handwriting Recognition, KAIST Campus, TaejonCity, Korea, Aug. 12-14, 1998, pp. 637-646] is interesting. Using theHough transform, short lines may be difficult to extract due to thelimited number of points and therefore limited orientation information.An optimal quantisation of the (ρ,θ) transformation space would improveboth speed and accuracy in detecting lines of a known fixed font size,however estimating the font size from a handwritten page of text lineswith arbitrary orientation before line extraction is a yet unsolvedproblem. Finally, no systematic experiments have been presented usingthe Hough transform for lines of different arbitrary orientation withinthe same page and its speed for line extraction has not been reported.

Clustering of ink into stroke groups corresponding to text lines hasalso been proposed, using a nearest-neighbour clustering algorithm orthe shortest spanning tree of the graph of connected components [S.Abuhaiba, S. Datta, M. Holt, “Line extraction and stroke ordering oftext pages”, Third International Conference on Document Analysis andRecognition, Volume 1, pp. 390-394, Aug. 14-15, 1995]. Methods based onconnected component clustering assume that the inter-stroke distance issmaller than the inter-line distance, something that cannot beguaranteed for handwritten documents. Some methods require a trainingset to generate probabilistic models of text line geometry on a page [J.Liang, I. Phillips and R. Haralick, “A Statistically based, HighlyAccurate Text-line Segmentation Method”, Proceedings of the 5thInternational Conference on Document Analysis and Recognition, 20-22September, 1999, Bangalore, India, pp 551-554]. Such an approach is notgenerally applicable in the unconstrained on-line handwriting case dueto both the difficulty in modelling user behaviour and the lack of areliable ground-truthing protocol for such data. A thinning-based imageprocessing method has been proposed [S. Tsuruoka, Y. Adachi and T.Yoshikawa, “The segmentation of a text line for a handwrittenunconstrained document using thinning algorithm”, Proceedings of theSeventh International Workshop on Frontiers in Handwriting Recognition,Sep. 11-13, 2000, Amsterdam, pp. 505-510].

A method to extract curved horizontal lines based on local baselinesegment estimates has been described [M. Feldbach and K. Tönnies. “LineDetection and Segmentation in Historical Church Registers”, In SixthInternational Conference on Document Analysis and Recognition, pages743-747, Seattle, USA, September 2001] for a specific type ofhandwritten document. A vertical descend method [A Hennig, N Sherkat andR J Whitrow, “Zone Estimation for Multiple Lines of Handwriting UsingApproximating Spline Functions”, Progress in Handwriting Recognition,ed. A. C. Downton, S. Impedovo, pp. 63-67, World Scientific, Singapore,June 1997, ISBN 981-02-3084-2] requires horizontal lines ofapproximately same length. Texture-based, inter-line cross-correlation,direct least squares and Fourier-based methods have also been studiedfor printed text document processing [O. Okun, M. Pietikäinen and J.Sauvola, “Robust Document Skew Detection Based on Line Extraction”,Proceedings of the 11th Scandinavian Conference on Image Analysis, 1999,June 7-11, Kangerlussuaq, Greenland, pp. 457-464]. However, theapplicability of such methods in handwriting applications is limited dueto the non-uniformity of the data.

Local processing is of importance for on-line handwriting data since onecan reasonably assume that attributes like the font and the lineorientation will not change significantly within most local spatialand/or temporal windows. Another advantage of local processing is thatwhen new ink is added to a page, re-computation of the existing ink isnot required.

Methods that utilise contextual information such as type of script,writing order or application environment are not considered. Althougheffective use of such knowledge would be beneficial for a specialisedsystem, it may not be available for general-purpose systems like thosedesigned for digital notepads.

A new method or system is needed for on-line handwritten text lineextraction allowing orientation estimation without the limitations ofRatzlaff's method [E. Ratzlaff, “Inter-line distance estimation and textline extraction for unconstrained on-line handwriting”, Proceedings ofthe 7th International Workshop on Frontiers in Handwriting Recognition,Sep. 11-13 2000, Amsterdam, Nijmegen: International Unipen Foundation,ISBN 90-76942-01-3, pp. 33-42], i.e. able to detect lines in anyorientation and possibly changing font characteristics and writingstyle.

This identifies a need for a method or system for line extraction in adigital ink sequence which overcomes or at least ameliorates problemsinherent in the prior art.

The reference to any prior art in this specification is not, and shouldnot be taken as, an acknowledgment or any form of suggestion that suchprior art forms part of the common general knowledge.

DISCLOSURE OF INVENTION

Generally, the present invention seeks to provide a method or system tosegment a digital ink sequence of handwritten text data into parts whereeach part corresponds to a text line and text lines are written inarbitrary positions, orientations and writing styles on the same page.The digital ink sequence may additionally contain arbitrary drawings andother non-text sequences embedded in the digital ink stream.

In another broad form, the present invention seeks to provide a workingalgorithm that takes as input a sequence of digital ink strokes from anelectronic writing device, detects text line breaks and segments theinput sequence into subsequences corresponding to text lines byexploiting the angular differences of spatiotemporal properties ofneighbouring parts of the digital ink.

A significant difference between the present method compared to thosereviewed hereinbefore is that it can extract lines of different lengths,fonts and arbitrary orientations within the same page (see an example inFIG. 4). The advantages of the present invention include the followingpoints.

(i) No assumptions are made about the relative positions of linesallowing for touching or even overlapping lines. Moreover, inter-linedistances may vary arbitrarily throughout a handwritten page of text.(ii) Training data and external (domain or application) information isnot required.(iii) Processing can be incremental so that when ink is added to a pagethe existing lines need not be re-extracted.(iv) Line extraction and orientation estimation is computationallyinexpensive so that is does not slow down further ink processing.

In a broad form, the present invention seeks to provide a method of lineextraction in a digital ink sequence of handwritten text data points,the method including the steps of:

-   -   obtaining a stroke sequence comprised of a sequence of strokes;    -   segmenting the strokes into a sequence of substrokes by applying        a stroke segmentation algorithm;    -   calculating angular differences between neighbouring substrokes,        or groups of substrokes, in the sequence of substrokes; and,    -   determining the positions of the extrema of the angular        differences, thereby identifying the substrokes at line breaks        and enabling line extraction.

In a further broad form, the present invention seeks to provide a methodof line extraction in an on-line digital ink sequence of handwrittentext data points, the method including the steps of:

-   -   obtaining a stroke sequence comprised of a sequence of strokes;    -   removing small strokes less than a threshold length;    -   segmenting the strokes into a sequence of substrokes by:        -   (A) computing a relative angle for each line segment            connecting successive stroke data points; and,        -   (B) segmenting the stroke into substrokes if the difference            between successive relative angles is greater than a preset            threshold; and,    -   identifying the substrokes at line breaks, thereby facilitating        line extraction, by:        -   (A) computing N-neighbourhood centroids;        -   (B) computing angular differences between N-neighbouring            substrokes, or groups of substrokes; and,        -   (C) computing local maxima of the angular differences in the            sequence of substrokes.

In still a further broad form, the present invention seeks to provide asystem for line extraction in a digital ink sequence of handwritten textdata points, the system comprising:

-   -   an input device to obtain a stroke sequence comprised of a        sequence of strokes;    -   a processor in communication with the input device and adapted        to:        -   (A) segment the strokes into a sequence of substrokes by            applying a stroke segmentation algorithm;        -   (B) calculate angular differences between neighbouring            substrokes, or groups of substrokes, in the sequence of            substrokes; and,        -   (C) determine the positions of the extrema of the angular            differences, thereby identifying the substrokes at line            breaks enabling line extraction.

In still a further broad form, the present invention seeks to provide asearchable electronic filing system including:

-   -   a. a first database for storing a digital representation of each        of a plurality of printed documents, each printed document        including machine-readable identification data which        distinguishes it from the others;    -   b. a second database for storing annotation digital ink, the        annotation digital ink representing at least one physical        handwritten annotation on at least one of the printed documents;    -   c. a processor configured to:        -   i. segment the annotation digital ink into lines using the            method of claim 1;        -   ii. accept a digital ink query;        -   iii. match the digital ink query against at least some of            the annotation digital ink in the second database, to            thereby identify a corresponding one of the documents in the            first database.

BRIEF DESCRIPTION OF FIGURES

The present invention should become apparent from the followingdescription, which is given by way of example only, of a preferred butnon-limiting embodiment thereof, described in connection with theaccompanying figures.

FIG. 1 illustrates a functional block diagram of a processing systemembodiment of the present invention;

FIG. 2 illustrates a broad method of the invention;

FIG. 3 illustrates examples of scripts similar to Latin (from top:English, French, Greek, Russian and Italian);

FIG. 4 illustrates an example of unconstrained handwritten text on anote-taking device;

FIG. 5 illustrates how stroke segmentation happens at points where thecurrent direction is significantly different either from the lastdirection or the initial direction of the current substroke. A schematicexample of such a segmentation point is B (current directionsignificantly different from the initial direction) whereas point Arepresents a point of continuity;

FIG. 6 illustrates the substrokes of an extract from the original ink ofFIG. 4;

FIG. 7 illustrates neighbouring straight line segments of the writingtrajectory on the same text line (line a-b or d-e) having similarorientation, different from the orientation of segments such as segmentc which connects points from different lines (A and B);

FIG. 8 illustrates (a) the connecting segments angle difference of theink in FIG. 2 plotted over stroke input order (b) the differentiatedsignal (c) the previous signal ignoring differences below 20 degrees (d)the selected local maxima (peaks);

FIG. 9 illustrates the extracted lines of ink shown in FIG. 4;

FIG. 10 illustrates the text line orientations estimated by thealgorithm;

FIG. 11 illustrates two examples from the 14 handwritten pages ofExperiment A;

FIG. 12 illustrates two examples from the 14 handwritten pages used inExperiment B;

FIG. 13 illustrates the only false negative (left) and a false positive(right) from those recorded in experiments A and B;

FIG. 14 illustrates some of the lines for which the orientationestimation failed;

FIG. 15 illustrates an example of a segmented page from those used inExperiment A;

FIG. 16 illustrates line extraction performance over changingsignificant angle threshold;

FIG. 17 illustrates line extraction performance over changing smallstroke size threshold;

FIG. 18 illustrates line extraction performance over changing localmaxima estimation window size;

FIG. 19 illustrates line extraction performance over changingneighbourhood size N;

FIG. 20 illustrates a schematic diagram of a preferred method of theinvention.

FIG. 21 (Prior Art) illustrates the Netpage system architecture

MODES FOR CARRYING OUT THE INVENTION

The following modes are described in order to provide a more preciseunderstanding of the subject matter of the present invention.

Preferred Embodiment

A particular embodiment of the present invention can be realised using aprocessing system, an example of which is shown in FIG. 1. Inparticular, the processing system 100 generally includes at least aprocessor or processing unit 102, a memory 104, an input device 106 andan output device 108, coupled together via a bus or collection of buses110. An interface 112 can also be provided for coupling the processingsystem 100 to a storage device 114 which houses a database 116. Thememory 104 can be any form of memory device, for example, volatile ornon-volatile memory, solid state storage devices, magnetic devices, etc.The input device 106 receives data input 118 and can include, forexample, digital notepad etc. The output device 108 produces data output120 and can include, for example, a display device, monitor, printer,network card, etc. The storage device 114 can be any form of storagemeans, for example, volatile or non-volatile memory, solid state storagedevices, magnetic devices, etc.

In use, the processing system 100 is adapted to allow data orinformation to be stored in and/or retrieved from the database 116. Theprocessor 102 receives digital ink via the input device 106 and maydisplay or transmit results via the output device 108. It should beappreciated that the processing system 100 may be any form of processingsystem, computer terminal, server, specialised hardware, or the like.

Referring to FIG. 2, the preferred method 200 is illustrated. At step202 the stroke sequence is obtained. At step 204 the stroke segmentationalgorithm is applied to the stroke sequence. Next, at step 206, thestroke segmentation algorithm results in a sequence of substrokes. Afterthis, at step 208, angular differences are calculated. Calculations areexplained in further detail hereinafter. At step 210 the extrema,preferably the maxima, of the angular differences between substrokes aredetermined. At step 212 line breaks are identified based on the angulardifference extrema determined in the preceding step. At step 214, afterthe line breaks have been identified, the lines may be extracted in thestroke sequence.

In the preferred method, a page of text is represented by a strokesequence. To reduce the number of points in the data (and thereforeprocessing time) as well as the influence of outlier points, for eachstroke a reference point is defined, its (mean) centroid is used in somesubsequent computations. The trajectory of writing is defined as thepolyline generated by connecting the strokes reference points in theorder they were input. Observation of the trajectory of writing in anumber of text pages suggests that the orientation (angle with respectto the horizontal axis) of segments connecting the centroid of the lastfew reference points of one line and the centroid of the first fewreference points of the next one have a significant difference from theorientation of segments connecting neighbouring point sets belonging tothe same line before and after the line break (see FIG. 7 for anillustration).

Referring to FIG. 20, a more detailed method 300 is now presented.

Pre-Processing 302

A stroke sequence may also be pre-processed. In pre-processing, first ofall, points with square Euclidean distance less than E from the previouspoint are removed 304 from the original ink sequence in order to removealmost identical points which increases both accuracy and efficiency. Inthe present implementation, E is set to be the median inter-point squareEuclidean distance calculated over all successive point pairs in thestroke sequence. To eliminate a number of noisy, small strokes (e.g.diacriticals) which may influence the algorithm's performance, strokeswhose maximum bounding rectangle dimension is less than S (here 0.4) ofthe maximum dimension of their previous and the next stroke are ignoredfrom subsequent processing. They can be added to the final extractedlines during post-processing. The strokes kept may vary in size andsometimes a whole line may consist of a single stroke. The trajectory ofwriting for such a line would be a single point (the stroke's centroid)which would not provide accurate evidence for computing angledifferences during line extraction. To generate more reference pointsfor complex strokes it is preferable to segment all page strokes intoparts called substrokes. Stroke segmentation into substrokes 306 isperformed using the angular extrema-based method described hereinafter.The resulting substrokes for an extract from the ink in FIG. 4 are shownin FIG. 6. After segmentation, the sequence of substrokes is consideredfor subsequent computations.

To segment strokes into substrokes 306 the following algorithm is used.First, the stroke points are smoothed using a low pass filter with athree-point kernel with coefficients [1/6,4/6,1/6] in order to reducethe effect of writer and/or pen instability. Subsequently, the direction(counter-clockwise angle from the horizontal axis) of every line segmentconnecting successive stroke points is computed, quantised to one of 16levels, converted to a first quadrant value and attributed to the firstpoint of each segment. An initial segmentation into candidate substrokesis then performed. Candidate substrokes start at the first stroke pointand at computed segmentation points. A stroke point is a segmentationpoint if its direction is either significantly different from that ofthe previous point or if the previous direction is significantlydifferent from the first point in the current candidate substroke (seeillustration in FIG. 5). Candidate substrokes are merged together if thesubstroke direction difference of successive substrokes is less than athreshold in order to avoid segmenting small and unusually noisy bumpson the stroke curve. Substroke direction is the quantised angle of theline segment connecting the end points of the substroke. The strokesegmentation algorithm is described step-by-step below:

Let Substrokes be an empty set of substrokes Let InitDir be thedirection of the first stroke point Let  LastDir  =  InitDir  be  the last  processed  stroke point direction Let CurrentSubstroke be anempty substroke For each stroke point P   Let CurrentDir be thedirection of P   If ( |CurrentDir − LastDir| > T1 AND |LastDir −InitDir|   > T2)   Add CurrentSubstroke to Substrokes   Set InitDir =LastDir =CurrentDir   Empty CurrentSubstroke   End <if>   else   Add Pto CurrentSubstroke   Set LastDir = CurrentDir   End<else> End <foreach> Let FinalSubstrokes be an empty set of substrokes Move the firstelement of Substrokes to FinalSubstrokes For each remaining substroke sin Substrokes    Compute the direction d of the segment connecting the   first and last point of s    If (d<T3)   Append all points of s tothe last substroke entered in   FinalSubstrokes   End<if>   else   Add sas a new entry in FinalSubstrokes   End<else> End<for each> ReturnFinalSubstrokes and terminate.

The low pass filter coefficients, the quantisation levels and thethreshold values associated with stroke segmentation are empiricallychosen to fixed values independently of the data sets used in ourexperiments. In particular, T1 is set to 1, T2 is set to 2 and T3 is setto 3 quantisation levels. Since neither the number nor the exactposition of segmentation points is critical in our application, theoptimality of the selected threshold values was not investigated.

Line Break Detection

In this step, the angle change along the trajectory of writing iscomputed as follows. The trajectory of writing of the substroke sequence308 often has a ragged form and possibly one or more backward pen jumps,e.g. for adding diacriticals. To reduce intra-line trajectoryvariability as well as sensitivity to backward pen jumps while computingthe angle difference between neighbouring line segments at a given(origin) substroke, groups of N substrokes (temporally) before and Nsubstrokes after a given (origin) substroke are considered. These groupsare termed the N-neighbourhood centred at the origin substroke. In thepresent implementation N was fixed to 8 which lead to successfulexperiments using simple test data. The centroid of the previous and thenext substroke neighbourhood are computed 310 and the lines connectingthem with the origin substroke centroid are used for the computation ofthe angle difference 312 at the origin substroke. This process isrepeated for each substroke in the sequence. The sensitivity of themethod to the parameter N is studied later.

From the angle change data, viewed as a one-dimensional function ofsubstroke input order, the significant angle changes are computed 312.First, angle changes below A (here 20) degrees are ignored 314 (replacedwith 0) as they typically correspond to intra-line variations. Then, thelocal maxima of the absolute values of the differentiated signal arecomputed 316 using a simple technique, selecting values which aregreater than all other values in a window of size W centred at thecandidate local maximum. In the present implementation, W was chosen tobe equal to the stroke neighbourhood size N (8) assuming that a linewill contain at least N/2, (here 4) substrokes. In the sensitivityanalysis later in this text it is shown that the value of W does notcritically influence performance. The positions of the local maxima inthe stroke input time domain correspond to the substrokes at theestimated line breaks. The position of the local maximum (the strokewith the maximum angle between the neighbouring point sets) can be anysubstroke in the last N of one line and the next N in the next line.Therefore, the line break position is corrected to the one before thelargest pen jump in the N-neighbourhood centred at the initial linebreak estimate. The corrected line breaks 318 are finally used to splitthe original stroke sequence into text lines 320. FIG. 8 shows thegraphs associated with the steps described above for the example of FIG.4. The computed angle between successive stroke neighbourhood centroidsis plotted in (a) while (b) shows the differentiated version of (a).Subplot (c) presents the differentiated signal after setting all valuesless than A (20) degrees to zero. The computed positions of the localmaxima of (c) are shown in (d).

Post-Processing 324

During line extraction, only the angle of neighbouring stroke groups isused. This often results in merged text lines with similar orientationsseparated by large pen jumps 326 which usually indicate line breaks(e.g. the space between columns of text). To address this, for eachsubstroke of every line (reference substroke), the K (here 3) previousand K next substrokes are considered. As in line break detection, morethan one substroke is considered in order to avoid misinterpretation ofpen jumps related to adding diacriticals. The reference substroke isconsidered part of the previous group which in fact has K+1 strokes. Ifthe Euclidean distance of the closest point pair between the previousand the next substroke group is greater than D, a line break is insertedafter the reference substroke. In the present implementation D was setto be J (here 20) times the maximum dimension of the average substrokesize of the line under consideration. Subsequently, any line breaksbetween substrokes of the same parent stroke are removed 328. Theverified lines are then converted to the original parent strokes 330 andthe small strokes which were ignored at preprocessing are re-inserted atthe most likely lines 332 using the following algorithm. If both theprevious and next stroke of an ignored stroke are parts of the sameextracted line then the ignored stroke is assigned to that line. In anyother case, the minimum Euclidean distance M is computed between allpoint pairs between the ignored stroke and each line. The ignored strokeis assigned to the line with the minimum M and the process terminates334. Note that none of the original ink points output from the pendevice are discarded in the returned lines. The extracted lines for theexample in FIG. 4 and their (approximate) convex hulls are shown in FIG.9.

Line Orientation Estimation

Line orientation is computed as the orientation of the first (principal)eigenvector of the set of line points with respect to the horizontalaxis. The computation of the eigenvectors was performed using theEISPACK software library [B. Smith, J. Boyle, J. Dongarra, B. Garbow, Y.Ikebe, V. Klema, and C. Moler, “Matrix Eigensystem Routines—EISPACKGuide”, Lecture Notes in Computer Science, Vol. 6, 2nd edition,Springer-Verlag, Berlin, 1976]. The computed orientations for the ink inFIG. 4 are shown in FIG. 10. The computed orientations do not take intoaccount the direction of writing and they may be output as thesupplementary (180 degrees difference) of the “true” angles. To amendthis, an initial rotation is performed using the estimated angle so thatthe line is horizontal. The differences of the abscissa of the firstpoints of the strokes of the rotated line with the abscissa of the firstpoint of the first stroke of the line are then recorded. If the numberof positive differences is less than the number of negative differencesthen the line is further rotated by 180 degrees clock-wise otherwise theinitial rotation is accepted. The exact positions of the text baselines,not computed in this work, can be achieved using, for example, a zoningmethod on the segmented and deskewed text lines. For display purposes,the horizontal segments shown in FIG. 10 were automatically positionedso that they pass through the centroid of the first 3 strokes of eachline and their end points are the intersection points of thecorresponding geometric line with the text line's bounding rectangle.

Further Example

The following example provides a more detailed discussion of a specificembodiment of the present invention and presents experimental resultsarising from this embodiment. The example is intended to be merelyillustrative and not limiting to the scope of the present invention.

Three experiments were conducted using ink data collected with aCrossPad Portable Digital Notepad tablet (model CP41001-01XPAD).

Experiment A

To test the performance of the method for line extraction, fourteen (14)people were asked to copy the contents of a selected text page in theirown handwriting and without necessarily preserving the line breaks, textline orientations and relative positions of the example page. No extracare was required by the writers regarding the writing style, thereforethe data presented a good mix of cursive and discrete writing as well asa mixture of fonts. The example page copied by the writers contained aprinted passage written horizontally in the middle of the page, a listof sport names written anywhere on the page (in list format) inarbitrary orientation and a number of annotation words/sentences writtenaround the central passage in arbitrary positions and orientations. Thedata consisted of 415 lines or 401 line breaks (excluding the beginningand end of page). The exact positions of the line breaks (the index ofthe temporally last stroke of each line) were manually identified andrecorded as ground truth. Note, that line breaks caused by usercorrections (e.g. additions to previously written lines) were groundtruthed as “correct” line breaks. Examples of the handwritten pages areshown in FIG. 11.

Experiment B

The second experimental data set comprised 14 full pages of cursive textcopied from a novel by a single writer. Again, line extraction wasevaluated, the difference being that all lines were approximatelyhorizontal (they were written using guide ruler lines). On average eachpage contained 28 lines which were often touching and their lengthsometimes changed markedly. In total, the data contained 406 lines or392 line breaks which were manually ground truthed (exactly as inExperiment A). Examples of the handwritten pages are shown in FIG. 12.

Experiment C

The third experiment was conducted to test the suitability of the textline orientation estimation algorithm. The data consisted of 4208horizontal English text lines manually segmented from a number ofdifferent handwritten documents and manually rotated to arbitrary anglesbetween −180 and 180 degrees which were recorded as ground truth.

The algorithm was implemented on a 1.7 GHz Pentium PC running Windows2000 using Visual C++. Experiment A was timed and completed in 1.85seconds excluding the time to load the ink from disk. This is equivalentto approximately 0.1 seconds per page on average or approximately 4 msecon average per extracted line. Experiment B was timed and completed in3.96 seconds (again, excluding I/O). This is equivalent to approximately0.28 seconds per page on average or approximately 9.8 msec on averageper extracted line. The difference in time between Experiment A andExperiment B is due to the smaller length of the text lines in the firstexperiment. The total time (excluding I/O) for a cumulative lineextraction experiment on the data from both experiments A and B (821lines) is 7 secs i.e. 0.25 secs per page and 8.5 msec per line. Thecomputational cost of orientation estimation is 2 μsec per line onaverage in Experiment C. This time increases to 3.6 μsec per line ifdeskewing (line rotation) is also performed after orientationestimation.

Results:

Numerical results for experiments A and B are presented in Table 1. Fromthe 401 line breaks in Experiment A, 400 (99.75%) were correctlydetected while eight false positives and a single false negative werealso recorded. The false positives (incorrectly broken lines) were dueto large angle variations within N-neighbourhoods within lines. Thefalse negative (incorrectly merged lines) happened at a correctivebackwards jump (see the discussion below).

TABLE 1 Line extraction results of Experiment A and B True lineCorrectly false False breaks Detected positives negatives PerformanceExp/ment A 401 400 8 1 0.986 Exp/ment B 392 392 5 0 0.993 Total 793 79213 1 0.989

From the 392 line breaks in Experiment B, all 392 (100%) of them weredetected successfully. However, there were 5 false positives mainly dueto large intra-line angle variations involving elongated ascenders ordescenders (see FIG. 11 for an example). Cumulative results for bothexperiments A and B are also shown in Table 1.

Table 2 presents results from Experiment C. From a total of 4208 tests,2910 (69.2%) line orientations were computed within 1 degree from theground truth values. This figure rises to 3963 lines (94.1%) if weconsider deviations within 5 degrees from ground truth, since theoriginal lines were not exactly horizontal. Seventy-two orientationswere more than 10 degrees different than the ground truth and they allcorresponded to short lines for which the principal orientation may notbe reliably computed (see some examples in FIG. 12).

TABLE 2 Experiment C: Orientation estimation results Total Numberof >5 >10 >100 >150 Lines >1 degree degrees degrees degrees degrees4,208 1298 245 72 40 0 (0%) (30.8%) (5.8%) (1.6%) (0.9%)

To summarise performance the following formula was used:

α=(C−0.5 Fp−1.5 Fn)/T

where C is the number of correctly detected line breaks, Fp is thenumber of false positives and Fn the number of false negatives. T is thetotal number of ground truthed line breaks.

The weights in the above equation are explained below. False positivesare usually not as detrimental as false negatives are, since broken lineparts can be considered as individual lines and pose no problems tosubsequent processing modules (e.g. zoning or word/charactersegmentation or recognition). However, merged lines (missed line breaks)will most likely cause further processing to fail therefore their scoreis penalised heavier.

The only false negative recorded in the above experiments was caused bya long backwards jump to add a correction before moving on to the nextline (shown in FIG. 13). The line break was incorrectly estimated beforethe correction instead of after it, therefore causing a false negative(miss). Although the line break estimate is wrong by a only a (small)stroke, no attempt was made to measure the “goodness” of the estimateswhich would require not only use of semantic information (assumedunavailable) but also knowledge of the subsequent algorithms in therecognition system which are directly affected by the results of theline extractor.

Apart from the limitations of the proposed method caused by the acceptedtext line model and user behaviour assumptions, the accuracy of theproposed algorithm may degrade when operating on writing with extremelysmall font size due to the lack of an adequate number of points toreliably segment the strokes into substrokes. Similarly, performance maydegrade as a result of extremely large font sizes mainly due to the factthat angle variations between groups of neighbouring substrokes are muchlarger than in writing with commonly used font sizes. In addition, dueto the assumption that a text line will contain more than N/2 (here 4)substrokes, operation of the algorithm on data consisting of extremelyshort (e.g. one or two letter) lines is expected to be unstable.

The sensitivity of the cumulative performance (on the data of bothexperiments A and B as a function of three of the system's parameterswas also studied. Results are presented graphically in FIGS. 16, 17, 18and 19. The first graph shows that performance is stable when ignoringtrajectory angle changes below 20 to 30 degrees. In the presentimplementation 20 degrees was chosen to favour over-segmentation,without a loss in performance as the graph illustrates. The second graphshows that ignoring small strokes at preprocessing does not affectperformance for a wide range of the relative size threshold. This stepof the algorithm was kept nonetheless as it was shown to improveaccuracy in simple experiments performed during the development of themethod. Performance in the third graph is plotted over changing localmaxima estimation window size (W). Clearly, the selection of W is notcritical in the range from 4 to approximately 18. To favour over ratherthan under-segmentation, the default value (8) which was chosen in thepreliminary experiments was kept. Lastly, the fourth graph shows thatbest performance is fairly independent of the stroke neighbourhood sizein the range between 7 and 12. This validates the initial setting of thestroke neighbourhood size to 8.

Hence, the present method/system:(i) is experimentally proven to be able to extract on-line handwrittentext lines of arbitrary individual length, orientation and fontsize/style on the same page;(ii) is robust to user mistakes, overlapping/touching lines, non-textscribbles and diacritical strokes;(iii) is based on a computationally simple algorithm and is reasonablyfast (0.25 secs per page on average);(iv) does not rely heavily on the selection of its internal parameters(good performance achieved with the default settings);(v) does not require training or any application specific information,therefore it is flexible;(vi) can extract lines with curved baselines (although deskewing willnot work);(vii) does not put constraints on either the inter-line or theinter-stroke distance;(viii) is independent of a language model and is designed to performwell for a number of scripts including Latin, Greek, Cyrillic and theirvariations;(ix) can effectively estimate the orientation of the text baseline(assuming straight lines); and(x) allows for incremental processing of the ink (at the time of input).

The suitability of the method for line extraction and line orientationestimation was experimentally tested using 28 full pages of textconsisting of 821 text lines written by 14 different writers. Of thecorresponding 793 line breaks, 792 were correctly detected. Only oneline break was missed by the algorithm, and 13 non-existent line breakswere introduced. Line orientation estimation was tested on 4208 manuallyrotated text lines. The estimated orientations were approximately 70%within 1 degree from ground truth and approximately 95% within 5degrees. All experiments were performed with the same default internalparameters.

Improvements could include the ability to handle lines withsignificantly curved baselines and the automatic (adaptive) selection ofsome of the internal parameters.

Thus, there has been provided in accordance with the present invention,a method and system for line extraction in a digital ink sequence.

The invention may also be said to broadly consist in the parts, elementsand features referred to or indicated herein, individually orcollectively, in any or all combinations of two or more of the parts,elements or features, and wherein specific integers are mentioned hereinwhich have known equivalents in the art to which the invention relates,such known equivalents are deemed to be incorporated herein as ifindividually set forth.

Although the preferred embodiment has been described in detail, itshould be understood that various changes, substitutions, andalterations can be made by one of ordinary skill in the art withoutdeparting from the scope of the present invention.

1. A system comprising a first database storing annotation digital inkrepresenting handwritten annotations on a printed document and aprocessor configured to segment the annotation digital ink into linesby: obtaining a stroke sequence comprised of a sequence of strokes;removing small strokes less than a threshold length; segmenting thestrokes into a sequence of substrokes by: computing a relative angle foreach line segment connecting successive stroke data points; andsegmenting the stroke into substrokes if the difference betweensuccessive relative angles is greater than a preset threshold; andidentifying the substrokes at line breaks, thereby facilitating lineextraction, by: computing N-neighbourhood centroids; computing angulardifferences between N-neighbouring substrokes, or groups of substrokes;and computing local maxima of the angular differences in the sequence ofsubstrokes.
 2. A system as claimed in claim 1 further comprising ahandheld sensing device for generating the annotation digital ink duringinteraction with the printed document.
 3. A system as claimed in claim 1further comprising second database for storing a digital representationof the printed document.
 4. A system as claimed in claim 3 wherein theprocessor matches an input digital ink query against the annotationdigital ink in the first database to thereby identify a correspondingdigital representation in the second database.